home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / maxit.arc / MAXIT.BAS (.txt)
Encoding:
GW-BASIC  |  1986-02-21  |  4.5 KB  |  145 lines

  1. 1000  '   MAXIT  FROM PET
  2. 1010  '   ADAPTED TO IPM PC BY PATRICK LEABO
  3. 1020  '   3-20-82              TUCSON ARIZONA
  4. 1030  '
  5. 1090  SCREEN 0:COLOR 7,0:WIDTH 80:KEY OFF
  6. 1100  DEFINT A-Z:DATA 49,51,53,54,56,58,60,61
  7. 1110  RANDOMIZE VAL(RIGHT$(TIME$,2))
  8. 1120  FOR N= 0 TO 7:READ NT(N):NEXT
  9. 1140  DIM BD(7,7),AV(64)
  10. 1150  CLS:LOCATE 3,11:PRINT "THE GAME OF MAXIT"
  11. 1160  PRINT "DO YOU WANT INSTRUCTIONS ? ";:GOSUB 3000:PRINT
  12. 1170  IF KS$= "Y" OR KS$="y" THEN GOSUB 2210
  13. 1180  PRINT :PRINT "1 OR 2 PLAYERS ?";:GOSUB 3000
  14. 1190  PRINT KS$:NP= VAL (KS$):PRINT 
  15. 1200  IF NP= 1 THEN 1240
  16. 1210  IF NP< > 2 THEN 1180
  17. 1220  INPUT "WHAT IS YOUR NAME #1";P1$:P1$=LEFT$(P1$,7):BEEP:PRINT
  18. 1230  PRINT :INPUT "WHAT IS YOUR NAME #2";P2$:P2$=LEFT$(P2$,7):BEEP:PRINT :GOTO 1250
  19. 1240  P2$= "IBM PC":INPUT "WHAT IS YOUR NAME ";P1$:BEEP:PRINT:P1$=LEFT$(P1$,7)
  20. 1250  CLS:LOCATE 2,16:PRINT "M A X I T":GOSUB 2360
  21. 1260  RANDOMIZE VAL(RIGHT$(TIME$,2)):MD= 1
  22. 1270  FOR K= 1 TO 64:AV(K)= K:NEXT 
  23. 1280  FOR K= 64 TO 1 STEP - 1:READ PC
  24. 1290  P1= 1+ INT (K* RND (1))
  25. 1300  J= AV(P1)- 1
  26. 1310  IF P1< K THEN FOR I= P1 TO K- 1:AV(I)= AV(I+ 1):NEXT
  27. 1320  I= INT (J/ 8):J= J- 8* I
  28. 1330  BD(I,J)= PC:GOSUB 1540:NT= J:GOSUB 1980
  29. 1340  NEXT K:RESTORE 1350:NT= 7:GOSUB 1980:GOSUB 1980:GOSUB 1980
  30. 1350  DATA 15,10,9,9,8,8,7,7,7,6,6,6
  31. 1360  DATA 5,5,5,5,4,4,4,4,3,3,3,3,3
  32. 1370  DATA 2,2,2,2,2,2,1,1,1,1,1
  33. 1380  DATA 0,0,0,0,0,0,-1,-1,-1,-1,-1
  34. 1390  DATA -2,-2,-2,-2,-3,-3,-3
  35. 1400  DATA -4,-4,-4,-5,-5,-6,-6
  36. 1410  DATA -7,-9,100
  37. 1420  S1= 0:S2= 0:GOSUB 2000
  38. 1430  REM  PLAYER 1
  39. 1440  PL= 1:GOSUB 1630:IF FL= 0 THEN 1470
  40. 1450  REM  PLAYER 2
  41. 1460  PL= 2:GOSUB 1630:IF FL< > 0 THEN 1430
  42. 1470  LOCATE 22,1:PRINT STRING$(39," ");:LOCATE 22,1:ON 2+ SGN (S2- S1)GOSUB 1510,1520,1530
  43. 1480  POKE 106,0:LOCATE 23,1:PRINT STRING$(39," ");:LOCATE 23,1:PRINT "DO YOU WANT TO PLAY AGAIN ?";:C$="":WHILE C$="":C$=INKEY$:WEND:PRINT C$
  44. 1490  IF "Y"= C$ OR "y"=C$ THEN 1250
  45. 1500  CHAIN "MENU",1000
  46. 1510  PRINT P1$;" WON BY ";STR$ (S1- S2);" POINTS":PRINT :RETURN
  47. 1520  PRINT "IT'S A TIE !!                   ":RETURN
  48. 1530  PRINT P2$;" WON BY ";STR$ (S2- S1);" POINTS ":PRINT :RETURN
  49. 1540  REM  DRAW BOARD POSITION I,J IN MODE MD (1=RED,2=BLACK)
  50. 1550  PC= BD(I,J)
  51. 1560  LOCATE I* 2+ 5,J*4+5
  52. 1570  IF MD= 2 THEN COLOR 0,7:GOTO 1590
  53. 1580  COLOR 7,0
  54. 1590  IF PC= 100 THEN PRINT "**":C1= I:C2= J:GOTO 1620
  55. 1600  IF PC= - 100 THEN PRINT "  ":GOTO 1620
  56. 1610  PRINT RIGHT$ ("  "+ STR$ (PC),2)
  57. 1620  COLOR 7,0:RETURN
  58. 1630  IF PL= 2 THEN 1670
  59. 1640  FL= 600:FOR J= 0 TO 7:FL= FL+ BD(C1,J):NEXT 
  60. 1650  IF FL= 0 THEN RETURN 
  61. 1660  NM$= P1$:DX= 1:DY= 0:GOSUB 1700:RETURN 
  62. 1670  FL= 600:FOR I= 0 TO 7:FL= FL+ BD(I,C2):NEXT 
  63. 1680  IF FL= 0 THEN RETURN 
  64. 1690  NM$= P2$:DX= 0:DY= 1:GOSUB 1700:RETURN 
  65. 1700  Y= C1:X= C2:FX= 1
  66. 1705  IF PL = 2 THEN COLOR 0,7
  67. 1710  IF NP= 2 OR PL= 1 THEN 1730
  68. 1720  PRINT :GOSUB 1970:PRINT NM$;"'S TURN.         ":GOSUB 2060:GOTO 1880
  69. 1730  GOSUB 1970:ON FX GOTO 1740,1750
  70. 1740  PRINT :GOSUB 1970:PRINT NM$;", YOUR TURN.     ":PRINT :GOTO 1760
  71. 1750  PRINT "                    ":PRINT
  72. 1760  PLAY "L64T200N70"
  73. 1770  C$=INKEY$:IF C$="" THEN 1770 ELSE KS=ASC(C$)
  74. 1775  IF C$=CHR$(27) THEN 1500
  75. 1780  IF C$< > " "THEN 1860
  76. 1790  OX= X:OY= Y
  77. 1800  Y= Y+ DY:IF Y> 7 THEN Y= 0
  78. 1810  X= X+ DX:IF X> 7 THEN X= 0
  79. 1820  PT= BD(Y,X):IF ABS (PT)= 100 THEN 1800
  80. 1830  MD= 1:I= OY:J= OX:GOSUB 1540
  81. 1840  MD= 2:I= Y:J= X:GOSUB 1540
  82. 1850  GOTO 1770
  83. 1860  IF C$< > CHR$ (13)THEN 1770
  84. 1870  IF ABS (BD(Y,X))= 100 THEN 1770
  85. 1880  REM SCORE IT
  86. 1890  '
  87. 1900  IF NP=1 AND PL =2 THEN MD= 2:I= Y :J= X:GOSUB 1540:FOR DL = 1 TO 1500:NEXT
  88. 1905  GOSUB 1990:MD= 1:I= C1:J= C2:BD(I,J)= - 100:GOSUB 1540
  89. 1910  I= Y:J= X:PT= BD(I,J):BD(I,J)= 100:GOSUB 1540
  90. 1920  IF PL= 1 THEN S1= S1+ PT
  91. 1930  IF PL= 2 THEN S2= S2+ PT
  92. 1940  GOSUB 1970
  93. 1950  LOCATE 22,25:PRINT "LAST TAKEN:";PT;" ";
  94. 1960  GOSUB 2000:RETURN 
  95. 1970  LOCATE 22,1:RETURN
  96. 1980  PLAY "MNMFL64N=NT(NT);":RETURN
  97. 1990  FOR N=49 TO 70 :PLAY "MBT255MLO3L64N=N;":NEXT:RETURN
  98. 2000  GOSUB 1970
  99. 2010  LOCATE 21,1:ME$=P1$+"'S SCORE="+STR$ (S1)+"  "+P2$+"'S SCORE="+STR$ (S2)+"       ":ME$=LEFT$(ME$,40):PRINT ME$:RETURN
  100. 2020  REM  SCREEN INSTRUCTIONS
  101. 2050  RETURN
  102. 2059  '      COMPUTER PLAYER ALGORITHM
  103. 2060  MT= - 100:GG= - 1:FOR A1= 0 TO 7:PC= BD(A1,C2):IF ABS (PC)= 100 THEN 2200
  104. 2070  MX= - 100:FOR A2= 0 TO 7
  105. 2080  IF A2< > C2 THEN PK= BD(A1,A2):IF PK< > - 100 AND PK> MX THEN MX= PK:SV= A
  106. 2090  NEXT A2
  107. 2100  IF MX< > - 100 THEN 2120
  108. 2110  IF PC> MT THEN MT= PC:GG= A1:GOTO 2200
  109. 2120  IF GG< 0 THEN GG= A1
  110. 2130  FOR A2= 0 TO 7:PQ= BD(A2,SV):IF PQ= - 100 OR A2= A1 THEN 2190
  111. 2140  MY= - 100:FOR A3= 0 TO 7:PW= BD(A2,A3):IF A3= SV THEN 2160
  112. 2150  IF ABS (PW)< > 100 AND PW> MY THEN MY= PW
  113. 2160  NEXT A3
  114. 2170  IF MY= - 100 THEN MY= 0
  115. 2180  DT= PC- MX+ PQ- MY:IF DT> MT THEN MT= DT:GG= A1
  116. 2190  NEXT A2
  117. 2200  NEXT A1:Y= GG:RETURN 
  118. 2210  LOCATE 1,16:PRINT "M A X I T":PRINT
  119. 2220  PRINT "THE OBJECT OF MAXIT IS TO GET AS MANY"
  120. 2230  PRINT "POINTS AS POSSIBLE. TWO PLAYERS CAN"
  121. 2240  PRINT "PLAY AGAINST EACH OTHER, OR ONE AGAINST"
  122. 2250  PRINT "THE COMPUTER.":PRINT :PRINT
  123. 2260  PRINT "YOU GET POINTS BY MOVING A MARKER "
  124. 2270  PRINT "            **"
  125. 2280  PRINT "TO A SPACE WITH A NUMBER IN IT. THE"
  126. 2290  PRINT "FIRST PLAYER ALWAYS MOVES HORIZONTALLY"
  127. 2300  PRINT "AND THE SECOND MOVES VERTICALLY.  YOU"
  128. 2310  PRINT "INDICATE THE PLACE YOU WANT TO MOVE TO"
  129. 2320  PRINT "BY USING THE SPACE BAR TO POSITION"
  130. 2330  PRINT "YOURSELF, AND THEN PUSH RETURN TO TAKE"
  131. 2340  PRINT "THAT PIECE.":RETURN 
  132. 2350  PLOT 8:END 
  133. 2360  REM  OTHER OTHELLO BOARD
  134. 2370  '
  135. 2380  TOP$="ERRTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENFNTHENTHENTHENOPTION"
  136. 2382  MD1$="CALL   CALL   CALL   CALL   CALL   CALL   CALL   CALL   CALL"
  137. 2384  MD2$="PSETTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHENINSTRTHENTHENTHEN<0xB5!>"
  138. 2386  BOT$="ERLTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSTEPTHENTHENTHENSAVE"
  139. 2390  LOCATE 4,4:PRINT TOP$
  140. 2400  FOR Y=5 TO 17 STEP 2:LOCATE Y,4:PRINT MD1$:LOCATE Y+1,4:PRINT MD2$:NEXT
  141. 2410  LOCATE 19,4:PRINT MD1$:LOCATE 20,4:PRINT BOT$
  142. 2440  GOSUB 2020
  143. 2450  RETURN 
  144. 3000  KS$="":WHILE KS$="":KS$=INKEY$:WEND:KS=ASC(KS$):RETURN
  145.